package code11_util;

import java.util.Scanner;

import org.junit.Test;

public class Test04 {
	@Test
	public void t1(){
		// 统计用户输入的一行字符串(只含有字母)中大写和小写字母各出现多少次数
		Scanner sc = new Scanner(System.in);
		String line = sc.nextLine();
		int upper = 0;// 大写
		int lower = 0;// 小写
		
		char[] arr = line.toCharArray();
		for (int i = 0; i < arr.length; i++) {
			if(arr[i] >= 'A' && arr[i] <= 'Z'){
				upper++;
			}
			if(arr[i] >= 'a' && arr[i] <= 'z'){
				lower++;
			}
		}
		
		System.out.println("upper="+upper);
		System.out.println("lower="+lower);
	}
	@Test
	public void t2(){
		// 让用户输入的一行字符串(只含有字母)，统计26种字母(不区分大小写)各出现多少次
		String s = "sadqKJHuwHGHaIUYds";
		int[] countArr = new int[26];// a-z
		char first = 'a';
		// 全部变小写
		s = s.toLowerCase();
		char[] arr = s.toCharArray();
		for (int i = 0; i < arr.length; i++) {
			int index = arr[i] - first;// 与a相比的一个差值, 这个差值刚好是上面的 保存字母种类对应此次的 数组下标
			countArr[index]++;// 对该位置的次数进行 加1
		}
		for (int i = 0; i < countArr.length; i++) {
			char c = (char) (first + i);
			System.out.println( c + ":" + countArr[i]);
		}
	}
	@Test
	public void t3(){
		// 让用户输入的一行字符串(只含有字母)，统计出现了多少种字母(区分大小写)，并且各出现多少次
		String s = "sadqKJHuwHGHaIUYds";
		//System.out.println("replace:"+s.replace("s", ""));
		int num = 0;
		while (s.length() > 0) {
			// 每一次都取第一个
			String c = s.charAt(0) + "";
			//String c = s.substring(i, i+1);
			String newStr = s.replace(c, "");// 该 newStr 中将没有 c 中保存的 字符
			// c 中保存的 字符 出现的次数
			int count = s.length() - newStr.length();
			System.out.println(c+"次数:"+count);
			// 接着上一次的处理之后，再处理其他字符
			s = newStr;
			num++;// 统计字符种类个数
		}
		System.out.println("共"+num+"种字母");
	}
	@Test
	public void t4() {
		// 让用户输入的一行字符串(只含有数字和字母), 把字符串中的字符每4个，使用一个 - 减号分隔
		// 例如输入 hellowolrd1234 --> hell-owol-rd12-34
		String s = "hellowolrd1234bd1";
//		char[] arr = s.toCharArray();
		String[] arr = s.split("");
		String temp = "";
		for (int i = 0; i < arr.length; i++) {
			temp += arr[i];
			int m = i+1;// 排除第0个字符
			if ( m % 4 == 0 && m != arr.length) {
				// -
				temp += "-";
			}
		}
		System.out.println(temp);
	}
}
